package com.yxx.business.service;

import java.util.List;

import com.yxx.business.entity.*;
import com.yxx.common.core.domain.PageResult;
import com.yxx.common.core.service.IServicePlus;

/**
 * 设备配置Service接口
 *
 * @author yxx
 * @date 2025-08-05
 */
public interface ITbEquipmentConfigService extends IServicePlus<TbEquipmentConfigDo>, PhaseService {

    /**
     * 查询设备配置分页结果
     *
     * @param tbEquipmentConfigQueryDto 设备配置查询实体
     * @return 设备配置分页
     */
    public PageResult<TbEquipmentConfigVo> selectTbEquipmentConfigVoPage(TbEquipmentConfigQueryDto tbEquipmentConfigQueryDto);

    /**
     * 查询设备配置Vo列表
     *
     * @param tbEquipmentConfigQueryDto 设备配置查询实体
     * @return 设备配置集合
     */
    public List<TbEquipmentConfigVo> selectTbEquipmentConfigVoList(TbEquipmentConfigQueryDto tbEquipmentConfigQueryDto);

    /**
     * 查询设备配置Do列表
     *
     * @param tbEquipmentConfigQueryDto 设备配置查询实体
     * @return 设备配置集合
     */
    public List<TbEquipmentConfigDo> selectTbEquipmentConfigDoList(TbEquipmentConfigQueryDto tbEquipmentConfigQueryDto);

    /**
     * 查询单个设备配置
     *
     * @param equipmentId 设备配置主键
     * @return 设备配置单个
     */
    public TbEquipmentConfigVo selectTbEquipmentConfigVoByEquipmentId(Long equipmentId);

    /**
     * 新增设备配置
     *
     * @param tbEquipmentConfigQueryDto 设备配置编辑实体
     * @return 结果
     */
    public int insertTbEquipmentConfig(TbEquipmentConfigEditDto tbEquipmentConfigQueryDto);

    /**
     * 修改设备配置
     *
     * @param equipmentId 主键
     * @param tbEquipmentConfigQueryDto 设备配置编辑实体
     * @return 结果
     */
    public int updateTbEquipmentConfig(Long equipmentId, TbEquipmentConfigEditDto tbEquipmentConfigQueryDto);

    /**
     * 批量删除设备配置
     *
     * @param equipmentIds 设备配置主键集合
     * @return 结果
     */
    public int deleteTbEquipmentConfigByEquipmentIds(List<Long> equipmentIds);

    /**
     * 删除单个设备配置信息
     *
     * @param equipmentId 设备配置主键
     * @return 结果
     */
    public int deleteTbEquipmentConfigByEquipmentId(Long equipmentId);

    /**
     * 获取对应阶段的碳排放结果
     */
    TbEquipmentPhaseVo getPhase(TbEquipmentPhaseDto tbEquipmentPhaseDto);

    /**
     * 保存对应阶段的碳排放结果
     */
    int savePhase(TbEquipmentPhaseVo tbEquipmentPhaseVo);

    List<TbEquipmentPhaseVo> getPhaseAll(TbEquipmentPhaseDto tbEquipmentPhaseDto);
}
